#ifndef _DEF_H_
#define _DEF_H_
#include <stdio.h>
#include <stdlib.h>

#define MAXLINE 1024    //输入行的最大长度

#define MAXARG 20       //每个简单命令的参数的最多个数
#define PIPELINE 5      //一个管道行中简单命令的最多个数
#define MAXNAME 100     //IO重定向文件名的最大长度

#define err_sys(info) { \
    fprintf(stderr, "%s:%s\n", info, strerror(errno));   \
    exit(EXIT_FAILURE); \
}

#define ERR_EXIT(m)    \
    do {               \
        perror(m);     \
        exit(EXIT_FAILURE); \
    } while(0);                  

typedef struct command {
    char *args[MAXARG-1];    //解析出的命令参数列表
    int infd;                //输入描述符
    int outfd;               //输出描述符
} COMMAND;

#endif  //_DEF_H_
